Take a shuttle boat from the public dock at Panajachel Q20, 45 minutes.
If flying from outside of the country, the most effective and practical way to get to San Marcos is by means of plane then either bus or car. I recomend flying into Guatemala City known by the locals as 'Guate' then proceed to drive 3.5 hours. The major highways that are in route are mostly updated. When exiting, take caution to the windy, dirt road that leads to the small town of San Marcos.
There is also a shuttle from San Christobal, Mexico. The shuttle provides a traveler with a rich cultural experiance by traveling in what the locals refer to as a "chicken bus". The "chicken bus" will drop you off in Panajachel and from there you can take a luancha small boat to San Marcos.
If traveling from Antigua, a popular tourist destination in Guatemala, the only means of transportation is a six hour car ride between towns. There are buses leaving from backpacker hostels. It costs about Q50/Q70 depending on the time you want to leave.